Ejercicio Final: Business Performance Analysis
Introducción
El presente trabajo constituye la entrega final correspondiente al curso de R dictado por el profesor Carlos J. Gil Bellosta, en el marco del Máster en Big Data y Analytics de la EAE Business School, edición 2019-2020.
El objetivo de este proyecto es poner en práctica los conocimientos más relevantes adquiridos a lo largo del curso, abarcando temas como : expresiones regulares, herramientas de Rmarkdown, manejo de datos externos, gráficos basados en ggplot2, entre otros puntos.
1. Expresiones Regulares
En este apartado llevaremos a cabo un breve análisis del contenido expuesto por los siguientes artículos:
Regular Expressions Explained
El artículo Regular Expressions Explained nos propone una exposición concreta y concisa del concepto de “Expresiones Regulares” desde la perspectiva de un desarrollador/ analista de datos. No obstante estar orientado a un público con conocimientos técnicos, notamos que el estilo y el léxico elegidos por el autor hacen que el artículo resulte entendible para cualquier individuo interesado en la materia, al margen de su nivel o experiencia como programador.
El autor define una expresión regular como una cadena de texto que determina un patrón de búsqueda, idea con la que fácilmente podemos inferir el potencial que las expresiones regulares poseen al momento de gestionar datos en general, y de manejar texto en particular. Asimismo, se deja en claro cuáles son los usos principales para los patrones creados con las expresiones regulares:
- Encontrar un trozo de texto dentro de un texto más grande.
- Validar que el texto encontrado cumple con un formato deseado.
- Reemplazar o insertar texto.
- Partir cadenas de texto.
Regular Expressions Tutorial
Regular Expressions Tutorial constituye, sin lugar a dudas, una guía completa para aprender a trabajar con expresiones regulares (de aquí en más referidas como regex en singular y regexes en plural). El tutorial comienza su recorrido definiendo las regexes como “un patrón que describe una cierta cantidad de texto”. Luego, utilizando un criterio basado en colores, describe cada una de las partes que componen a una regex, tomando como ejemplo el patrón clásico de búsqueda de correos electrónicos
Continuando, el artículo da paso a una sección dedicada a los motores de regex (Regular Expression Engines). Diferentes motores tienen diferentes comportamientos, a los que se refiere como ”flavors” o “sabores”, existiendo diferencias de sintaxis que vale la pena tener en cuenta.
Para finalizar la primera sección, el autor nos invita a probar un motor de regexes llamado EditPad Pro, que permite poner en práctica el concepto de regex , buscando palabras en un texto.
Conclusión
Si bien ambos artículos ofrecen una explicación clara, entendible, concreta y concisa del concepto de “Expresiones Regulares”, personalmente me inclinaría por el segundo, Regular Expressions Tutorial. A continuación listo los motivos de mi predilección:
- Guía completa para aprender todo lo que se necesita para empezar a trabajar con expresiones regulares.
- Lenguaje claro y de fácil compresión, tanto par técnicos como para no técnicos.
- Ofrece una visión holística del concepto de regex aplicable a cualquier lenguaje de programación en que se deseen usar.
- Referencia a motores de expresiones regulares que permiten entenderlas en la práctica.
- Este artículo es mencionado en múltiples otros blogs y páginas web, hecho que surge como clara evidencia de su utilidad y practicidad
2. Herramientas de R Markdown
En este apartado analizaremos los siguientes contenidos sobre herramientas de R Markdown:
R Markdown from RStudio
La guía de RStudio para R Markdown cuenta con una estructura limpia, fácil de navegar, entendible y con una estética agradable, empezando con un vídeo introductorio que nos da una idea general de cómo funciona la herramienta. La presentación de un menú con todos los contenidos en el margen izquierdo de la página aporta un alto grado de dinamismo y claridad en la lectura de la guía.
Creo firmemente que, si bien los manuales de R Markdown se caracterizan por su ubicuidad, tanto en formato escrito como en vídeo, la guía de RStudio resulta una excelente opción al momento comenzar a trabajar con la herramienta.
Getting Started with R Markdown
La página Getting Started with R Markdown nos permite comprender, rápidamente, qué es un documento R Markdown, explicando, paso a paso, para qué se usa la herramienta, cómo se construye un documento R Markdown y las diferentes maneras de exportarlo.
La tabla de contenidos del tutorial abarca todos los puntos principales requeridos para comenzar con R Markdown, aunque debe decirse que el estilo y la navegabilidad del sitio dejan bastante que desear.
Conclusión
Si bien el artículo Getting Started with R Markdown contiene toda la información necesaria para entender los principales conceptos de R Markdown, creo firmemente que el primer artículo, R Markdown from RStudio, propone una estructura de aprendizaje y lectura mucho más ordenada y agradable, incluyendo un video introductorio y múltiples ejemplos de uso de cada una de las funciones de la herramienta que pueden ejecutarse en R Studio online.
3. Tablas y Gráficos
El propósito del presente apartado es poner en práctica los siguientes conocimientos en R:
- Manejo de Tablas.
- Creación y edición de gráficos de
ggplot2con distintos temas. - Creación de gráficas de
ggplot2con facetas. - Extracción de datos aplicando Webscarping
- Creación de gráficos dinámicos con
plotlyytmap
Tabla ToothGrowth (ggplot2)
Comenzamos esta sección recurriendo a la tabla _ToothGrowth_ , en la que se registra el efecto ciertos suplementos en el crecimiento dental de conejillos de Indias (Guinea Pigs)
Vista general de ToothGrowth (con pander)
| Largo_Dental | Suplemento | Dosis |
|---|---|---|
| 4.2 | VC | 0.5 |
| 11.5 | VC | 0.5 |
| 7.3 | VC | 0.5 |
| 5.8 | VC | 0.5 |
| 6.4 | VC | 0.5 |
| 10 | VC | 0.5 |
Vitamina C vs Dientes (ggplot2 + theme_few())
Considerando los datos provistos por _ToothGrowth_ resulta interesante graficar la relación entre las dosis de vitamina C y el crecimiento de los dientes.
Tabla State77
En esta sección analizamos los datasets State77, state.region y state.name para así poder graficar algunos datos interesantes en relación a los Estados Unidos en la década de los 70.
Densidad de Asesinatos por Región
Salarios vs Graduados de secundaria (facet_wrap() + theme_economist())
Analfabetismo vs Asesinatos (facet_grid() + theme_stata())
Campeones del Mundo (Webscarping + theme_solarized())
Una de las funcionalidades más interesantes que ofrece R es la de hacer Webscraping o raspado de páginas web.
Como ejemplo de Webscraping, extraeremos el Palmarés del Mundial de Fútbol presente en el sitio web de Marca, para luego crear una gráfica sencilla utilizando ggplot2.
Palmarés de Mundiales
| Año | Campeon | Subcampeon | Sede | |
|---|---|---|---|---|
| 1 | 2018 | Francia | Croacia | Rusia |
| 2 | 2014 | Alemania | Argentina | Brasil |
| 3 | 2010 | Espana | Holanda | Sudafrica |
| 4 | 2006 | Italia | Francia | Alemania |
| 5 | 2002 | Brasil | Alemania | Corea S. y Japon |
| 6 | 1998 | Francia | Brasil | Francia |
| 7 | 1994 | Brasil | Italia | Estados Unidos |
| 8 | 1990 | Alemania | Argentina | Italia |
| 9 | 1986 | Argentina | Alemania (RFA) | Mexico |
| 10 | 1982 | Italia | Alemania (RFA) | Espana |
| 11 | 1978 | Argentina | Holanda | Argentina |
| 12 | 1974 | Alemania | Holanda | Alemania (RFA) |
| 13 | 1970 | Brasil | Italia | Mexico |
| 14 | 1966 | Inglaterra | Alemania (RFA) | Inglaterra |
| 15 | 1962 | Brasil | Checoslovaquia | Chile |
| 16 | 1958 | Brasil | Suecia | Suecia |
| 17 | 1954 | Alemania | Hungria | Suiza |
| 18 | 1950 | Uruguay | Brasil | Brasil |
| 21 | 1938 | Italia | Hungria | Francia |
| 22 | 1934 | Italia | Checoslovaquia | Italia |
| 23 | 1930 | Uruguay | Argentina | Uruguay |
Mundiales por País
Gráficos Dinámicos (Plot_ly + tmap)
En esta sección damos paso a algunos ejemplos sencillos de aplicación de gráficos dinámicos con ggplot2, particularmente, mediante la utilización de plotlyy tmap
Ejemplo clásico: mapa de calor de un volcán (plot_ly)
Uno de los ejemplos tradicionales de plotly, utilizando un esquema de heatmap, es el de mostrar un gráfico dinámico como el que se ve a continuación:
Relación Asesinatos - Salarios por Región
Utilizando los datos de Estados Unidos vistos con anterioridad en este informe, podemos crear un gráfico dinámico en el que establecemos una relación entre el nivel de salarios y la cantidad de homicidios por región.
Mundiales de Fútbol: Campeón, Año y Subcampeón
Similar al ejemplo anterior, podemos crear un gráfico dinámico utilizando la información obtenida en la sección de Webscraping. En este caso, utilizamos el parámetro symbol para identificar a los subcampeones en el gráfico.
Happy Planet Index (tmap)
Por último, resulta interesante incluir el “Happy Planet Index” como ejemplo de mapa interactivo utilizando tmap